package com.example.elasticsearch.repository;

import com.example.elasticsearch.bean.Product;
import org.springframework.data.domain.Page;
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Component;

import java.util.Optional;

/**
 * Copyright(C), 2020-2021, AmbroseCdMeng
 * FileName:    ProductRepository
 * Author:      AmbroseCdMeng
 * Date:        2021/3/3 13:37
 * Description: 继承 ElasticsearchRepository 即可创建数据操作接口，这样不用些方法就可以具备 Elasticsearch 文档的增加、删除、修改、查询功能。
 * History:
 * <author>     <time>      <version>       <desc>
 * 作者姓名     修改时间        版本号           描述
 */
@Component
public interface ProductRepository extends ElasticsearchRepository<Product, Long> {
    Optional<Product> findById(Long id);

    Optional<Product> findByName(String name);

    // 自定义方法
    Iterable<Product> findByNameAndPrice(String name, double price);

    Iterable<Product> findByPriceBetween(double price1, double price2);
}
